<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // class语法
        //  构造函数和原型
        // ES5
        // function Person(name,age){
        //     this.name = name;
        //     this.age = age;
        // }
        // let p = new Person("jack",20);
        // // 在构造函数中添加方法
        // Person.prototype.sayHello = function(){
        //     console.log(this.name);
        // }

        // class（类）语法，就是构造函数与原型的语法糖
        // ES6
        class Person{
            // 构造函数
            constructor(name,age){
                this.name = name;
                this.age = age;
            }
        }

        let p = new Person("jack",30);
        let p1 = new Person("rose",20);

        console.log(p);
        console.log(p1);

        //(1) 通过class 关键字创建类, 类名我们还是习惯性定义首字母大写
        //(2) 类里面有个constructor 函数,可以接受传递过来的参数,同时返回实例对象
        //(3) constructor 函数 只要 new 生成实例时,就会自动调用这个函数, 如果我们不写这个函数,类也会自动生成这个函数
        //(4) 生成实例 new 不能省略
        //(5) 最后注意语法规范, 创建类 类名后面不要加小括号,生成实例 类名后面加小括号, 构造函数不需要加function

    </script>
</body>
</html>